I. Field of the Invention
The present invention is directed to enforcing licenses for software applications. More particularly, the present invention is directed to methods and systems for enforcing simultaneous user licenses for software applications in a wireless network.
II. Description of Related Art
Business and individual consumer use of software applications continues to grow. Typically, the use of commercially available software applications requires a license for that use. In fact, it is common that a license to use a software application is purchased, not the actual software application. In this scenario, the software application is provided to the licensee as one of the terms of the license.
In this regard, there are a number of ways that software licenses may be enforced, such that users (business or individual) of such software applications are allocated a license when using a specific software application. One such approach is it to have a license associated with each installed instance of a software application. However, such an approach may be cost prohibitive, particularly for businesses. While a business may have certain software applications installed on numerous computing and/or electronic devices, not all of these applications are run simultaneously. In such a situation, a more cost effective solution may be to license the use of software applications using simultaneous user licenses. For example, a business may have a specific software application installed on one hundred devices, but may only have ten simultaneous user licenses. The total number of simultaneous user licenses corresponds to the number of users that may simultaneously use the specific software application.
Such simultaneous user licenses are typically managed in a network environment using, for example, a license server to allocate licenses to users in response to license requests. If a license is available when such a request is made, it is allocated to the requesting device (e.g., checked out). A user may then use the software application on the device. When the user is done using the software application, the license is unallocated from the user (e.g. checked in) and is again available for allocation to any of the devices (within a specific network) on which the application is installed. The process of checking a license in and/or out is accomplished by communication between the application (or the device on which the application is installed) and the license server.
A license may also be unallocated from a user in other manners. For example, if the application is idle for a certain period of time, an allocated license may “expire” and then be available for incoming license requests. Such “expiration” is typically determined by the application and the license server communicating with one another to determine that a license should be unallocated due to non-use of the application.
With the growth of software applications being used in wireless communication devices, such as mobile phones, personal digital assistants (PDAs), among others, it is desirable to employ software licensing approaches, such as the management of simultaneous user licenses for software applications installed on such wireless devices. However, such an approach is problematic due to the need for communication between the application (and/or wireless device) and the entity (e.g., license server) that manages the simultaneous user licenses. In this regard, a user of a mobile device may become disconnected (intentionally or unintentionally) from a wireless network that includes the entity which manages the simultaneous user licenses. In such a situation, it is not possible for the license server to determine if an application is no longer in use or if an allocated license should be unallocated due to “expiration” (e.g., non-use of the application). Therefore, alternative approaches for managing simultaneous user licenses in a wireless environment are desirable.